package cn.xorange.commons.utils.validate;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * @author : yangjian
 * date : 2021/8/29
 * description : 验证注解
 */
@Target(value={ElementType.METHOD,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited//可以继承
@Constraint(validatedBy = MValidateHandle.class)
public @interface MValidate {

    String message() default "";

    /** 是否可以为空 */
    boolean nonNull() default false;
    int min() default 0;
    /** 最大长度 */
    int max() default 0;
    /** 重复查询条件，标记的属性则为重复检查列 */
    String[] repeatSearch()  default {};

    //  groups 和 payload 这两个parameter 必须包含,不然会报错
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
}
